<!DOCTYPE html>
<html><head>
<title>认识js变量以及数据类型判断</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">

</style>
<style type="text/css">
.highlight  { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.pl-c {
    color: #969896;
}

.pl-c1,.pl-mdh,.pl-mm,.pl-mp,.pl-mr,.pl-s1 .pl-v,.pl-s3,.pl-sc,.pl-sv {
    color: #0086b3;
}

.pl-e,.pl-en {
    color: #795da3;
}

.pl-s1 .pl-s2,.pl-smi,.pl-smp,.pl-stj,.pl-vo,.pl-vpf {
    color: #333;
}

.pl-ent {
    color: #63a35c;
}

.pl-k,.pl-s,.pl-st {
    color: #a71d5d;
}

.pl-pds,.pl-s1,.pl-s1 .pl-pse .pl-s2,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sra,.pl-sr .pl-sre,.pl-src,.pl-v {
    color: #df5000;
}

.pl-id {
    color: #b52a1d;
}

.pl-ii {
    background-color: #b52a1d;
    color: #f8f8f8;
}

.pl-sr .pl-cce {
    color: #63a35c;
    font-weight: bold;
}

.pl-ml {
    color: #693a17;
}

.pl-mh,.pl-mh .pl-en,.pl-ms {
    color: #1d3e81;
    font-weight: bold;
}

.pl-mq {
    color: #008080;
}

.pl-mi {
    color: #333;
    font-style: italic;
}

.pl-mb {
    color: #333;
    font-weight: bold;
}

.pl-md,.pl-mdhf {
    background-color: #ffecec;
    color: #bd2c00;
}

.pl-mdht,.pl-mi1 {
    background-color: #eaffea;
    color: #55a532;
}

.pl-mdr {
    color: #795da3;
    font-weight: bold;
}

.pl-mo {
    color: #1d3e81;
}
.task-list {
padding-left:10px;
margin-bottom:0;
}

.task-list li {
    margin-left: 20px;
}

.task-list-item {
list-style-type:none;
padding-left:10px;
}

.task-list-item label {
font-weight:400;
}

.task-list-item.enabled label {
cursor:pointer;
}

.task-list-item+.task-list-item {
margin-top:3px;
}

.task-list-item-checkbox {
display:inline-block;
margin-left:-20px;
margin-right:3px;
vertical-align:1px;
}
</style>
<!-- base href="file:///D:/MD%E7%AC%94%E8%AE%B0/js/" -->
</head>
<body>
<h1 id="-js">认识js</h1>
<ol>
<li>web功能：动画、存储数据、轮播图、交互事件</li><li>服务端上：node.js</li><li>户端应用：electron.js</li><li>嵌入式开发：ruff.js</li><li>经典的工具库：jQuery.js</li><li>mvvm框架: vue.js/react.js/augular.js</li><li>游戏引擎：laya/egret</li></ol>
<h2 id="js-">js的特点</h2>
<ol>
<li>JavaScript 是一个脚本语言，一个高级语言，弱类型  解释型 语言</li><li>需要解释器，js容易移植到不同的平台</li><li>类型：不需要定义变量的类型</li></ol>
<ul>
<li>ECMAScript : 核心  语法(es6/es7/es8)、标准</li><li>DOM : 文档对象模型   document object model  页面节点</li><li>BOM : 浏览器对象模型  browser object model 浏览器部分功能</li></ul>
<ol>
<li>如果涉及到DOM操作 (依赖页面节点)最好放在页面的最后引入，以防脚本在文档渲染前执行</li><li>defer 异步加载  确保DOM解析完毕后执行脚本，按顺序执行 适用DOM操作</li><li>syns 异步加载  谁加载好就立即执行                  适用：数据访问统计等</li></ol>
<h1 id="-">变量</h1>
<h2 id="-">命名规则</h2>
<ol>
<li>变量名只能由大小写英文字母、数字、下划线、$组成，但不能使用数字开头</li><li>关键字不可使用，例如new /var/delete/document/window等</li><li>小驼峰法dataNumber、大驼峰法DataString、下划线分割data_array</li><li>尽可能语义化,尽可能添加注释</li></ol>
<h2 id="-">基本数据类型</h2>
<p> 数值、布尔、字符串、null、undefined、Object</p>
<h3 id="-">数据类型判断</h3>
<pre><code>    &lt;script&gt;
     var num=10;
            var bool=true;
            var str="abc";
            var nul=null;
            var und=undefined;
            var obj={};
            var arr=[];
            function fun(){};
           console.log(typeof num);   //number
            console.log(typeof str);   //string
            console.log(typeof bool);  //boolean
            console.log(typeof nul);   //typeof null==&gt;object
            console.log(typeof und);
            console.log(typeof obj);
            console.log(typeof arr);
            console.log(typeof fun);
   &lt;/script&gt;
</code></pre><ol>
<li>typeof null 的结果是object，n年前的bug,不会再改；</li><li>typeof 判断null/数组/对象 时,返回的都是object</li></ol>
<pre><code>             var arr= new Array();

            console.log(arr instanceof(Array) );
            console.log(obj instanceof(Object) );
             console.log(num instanceof(Number) );
            console.log(nul instanceof(Object) );
            console.log(str instanceof(String) );
</code></pre><ol>
<li>坑点 "string" instanceof(String)得到的结果是false，</li><li>为instanceof这个方法本来用于判断数据是否来自原型，所以只有new String("string")这样得出的结果的字符串才能判断为true</li></ol>
<pre><code>console.log(Object.prototype.toString.call(arr));
            console.log(Object.prototype.toString.call(str));
            console.log(Object.prototype.toString.call(num));
            console.log(Object.prototype.toString.call(nul));
            console.log(Object.prototype.toString.call(bool));
            console.log(Object.prototype.toString.call(nul));
            console.log(Object.prototype.toString.call(und));
</code></pre><ol>
<li>对象上的toString方法 让数据强行转换为字符串，得到对应类型的字符串结果</li></ol>




</body></html>
<!-- This document was created with MarkdownPad, the Markdown editor for Windows (http://markdownpad.com) -->